package lanqiaobei2021;

public class _01卡片 {
    /**
     * 【问题描述】
     * 小蓝有很多数字卡片，每张卡片上都是数字 0 到 9。
     * 小蓝准备用这些卡片来拼一些数，他想从 1 开始拼出正整数，每拼一个，
     * 就保存起来，卡片就不能用来拼其它数了。
     * 小蓝想知道自己能从 1 拼到多少。
     * 例如，当小蓝有 30 张卡片，其中 0 到 9 各 3 张，则小蓝可以拼出 1 到 10，
     * 但是拼 11 时卡片 1 已经只有一张了，不够拼出 11。
     * 现在小蓝手里有 0 到 9 的卡片各 2021 张，共 20210 张，请问小蓝可以从 1
     * 拼到多少？
     */
    public static void main(String[] args) {
        int[] kp = new int[10];
        for (int i = 0; i < 10; i++) {
            kp[i] = 2021;
        }
        System.out.println(def(kp));
    }

    public static int def(int[] kp) {
        int i;
        for (i = 1; i < 20210; i++) {
            int t = i;
            while (t > 0) {
                kp[t % 10]--;
                if (kp[t % 10] <= 0) {
                    return i;
                }
                t /= 10;
            }
        }
        return -1;
    }
}
